package com.wlr.study.leetcode;

/**
 * 定长子串中元音的最大数目
 *
 * @author lerong.wang
 * @version 1.0.0
 * @description
 * @date 2025/5/6 15:44
 */

public class LeetCode1456 {
    /**
     * 给你字符串 s 和整数 k 。
     * <p>
     * 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。
     * <p>
     * 英文中的 元音字母 为（a, e, i, o, u）。
     *
     * @param s
     * @param k
     * @return
     */
    public int maxVowels(String s, int k) {
        int result = 0;
        int length = s.length();
        int l = 0;
        int r = 0;
        int max = 0;
        while (r < length) {
            max += isVowel(s.charAt(r)) ? 1 : 0;
            if (r - l + 1 > k) {
                if (isVowel(s.charAt(l))) {
                    max--;
                }
                l++;
            }
            if (r - l + 1 == k) {
                result = Math.max(max, result);
            }
            r++;
        }
        return result;
    }

    public boolean isVowel(char ch) {
        return ch == 'a' || ch == 'e' || ch == 'i' || ch == 'o' || ch == 'u';
    }

    public static void main(String[] args) {
        LeetCode1456 leetCode1456 = new LeetCode1456();
        System.out.println(leetCode1456.maxVowels("weallloveyou", 7));
    }
}